home *** CD-ROM | disk | FTP | other *** search
- #if !defined(AFX_METRICS_H__ACA52AAB_9CE1_11D1_87E0_006097BA8D75__INCLUDED_)
- #define AFX_METRICS_H__ACA52AAB_9CE1_11D1_87E0_006097BA8D75__INCLUDED_
-
- #if _MSC_VER >= 1000
- #pragma once
- #endif // _MSC_VER >= 1000
- // Metrics.h : header file
- //
-
- /////////////////////////////////////////////////////////////////////////////
- // CBannerMetrics window
-
- class CBannerMetrics
- {
- public:
- int m_nPixelsPerInchH, m_nPixelsPerInchV;
-
- CBannerMetrics(CDC *pDC, int nZoomIndex = -1)
- {
- double lfZoom = (double)Zoom(nZoomIndex)/10000.0;
- m_nPixelsPerInchH = (int)(lfZoom * pDC->GetDeviceCaps(LOGPIXELSX));
- m_nPixelsPerInchV = (int)(lfZoom * pDC->GetDeviceCaps(LOGPIXELSY));
- }
-
- CSize Inch()
- { return CSize(m_nPixelsPerInchH, m_nPixelsPerInchV); }
- CSize BorderGap()
- { return CSize(m_nPixelsPerInchH/4, 0); }
- CSize BorderThickness()
- { return CSize(max(1,m_nPixelsPerInchH/8), max(1,m_nPixelsPerInchH/8)); }
-
- enum en_zooms // zoom [0,2] * 10000
- {
- ZOOM_16th = 625, // 0
- ZOOM_8th = 1250, // 1
- ZOOM_4th = 2500, // 2
- ZOOM_2th = 5000, // 3
- ZOOM_1x = 10000, // 4
- ZOOM_2x = 20000, // 5
- };
-
-
- static int Zoom(int nIndex)
- {
- switch(nIndex)
- {
- case 0: return ZOOM_16th;
- case 1: return ZOOM_8th;
- case 2: return ZOOM_4th;
- case 3: return ZOOM_2th;
- case 4: return ZOOM_1x;
- case 5: return ZOOM_2x;
- default: return ZOOM_1x;
- }
- }
-
- static double ZoomFrac(int nIndex)
- { return (double)Zoom(nIndex)/10000; }
-
- static int DefaultZoom()
- { return 2; }
-
- static int NumZooms()
- { return 6; }
- };
-
- /////////////////////////////////////////////////////////////////////////////
-
- //{{AFX_INSERT_LOCATION}}
- // Microsoft Developer Studio will insert additional declarations immediately before the previous line.
-
- #endif // !defined(AFX_METRICS_H__ACA52AAB_9CE1_11D1_87E0_006097BA8D75__INCLUDED_)
-